<#include "../base.ftl"/>
<#macro cssfile>

</#macro>

<#macro scriptfile>

</#macro>

<#macro breadcrumb>
    <ul class="breadcrumb">
     <#include "../crumb.ftl"/>
     <li class="active">用户管理</li>
    </ul>
</#macro>

<#macro title>
广大物流云平台
</#macro>

<#macro jsscript>
	$(function(){
		jQuery("#gridTable").jqGrid({
			//grid数据获取地址
			url : '${request.contextPath}/list/systemManagement/tsmUsersList/list.html',
			//grid数据修改地址
			editurl : '${request.contextPath}/operator/ts/TsUsers/operator.html',
			datatype : "json",
			//要求使用Post传递
			mtype : 'POST',
			height : 400,
			//column名称，可以进行国际化。和colModel中的顺序对应
			colNames : [ '用户编号', '登录账户', '用户姓名','用户密码', '用户邮箱', '手机号码', '传真','状态',
						'创建人','创建日期', '最后修改人', '最后修改时间' ],
			colModel : [
			//name：唯一名；jsonmap：在返回的json中的定义，就是sql语句中的字段名；
			//search:默认true，如果不需要search，设置为false
			//index:设置排序、查询时所使用的字段名称
			//editable:是否可以编辑
			{
				name : 'userId',
				jsonmap : 'USER_ID',
				index : 'USER_ID',
				hidden : true,
				//主键不允许编辑
				editable : false,
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			}, {
				name : 'userName',
				jsonmap : 'USER_NAME',
				index : 'USER_NAME',
				editable : true,
				editrules:{
					required:true
				},
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			}, {
				name : 'realName',
				jsonmap : 'REAL_NAME',
				index : 'REAL_NAME',
				editable : true,
				editrules:{
					required:true
				},
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			}, {
				name : 'userPwd',
				jsonmap : 'USER_PWD',
				index : 'USER_PWD',
				hidden : true,
				editable : true,
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			}, {
				name : 'userEmail',
				jsonmap : 'USER_EMAIL',
				index : 'USER_EMAIL',
				editable : true,
				editrules:{
					required:false,
					email:true
				},
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			}, {
				name : 'userMobile',
				jsonmap : 'USER_MOBILE',
				index : 'USER_MOBILE',
				editable : true,
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			}, {
				name : 'userFax',
				jsonmap : 'USER_FAX',
				index : 'USER_FAX',
				editable : true,
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			}, {
				name : 'status',
				jsonmap : 'STATUS',
				index : 'STATUS',
				hidden : true,
				editable : false,
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			},{
				name : 'createdBy',
				jsonmap : 'CREATED_BY',
				index : 'CREATED_BY',
				hidden : true,
				editable : false,
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			}, {
				name : 'createdDate',
				jsonmap : 'CREATED_DATE',
				index : 'CREATED_DATE',
				formatter : 'date',
				hidden : true,
				formatoptions : {
					srcformat : 'Y/m/d H:i:s',
					newformat : 'Y-m-d H:i:s'
				},
				align : 'center',
				editable : false,
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			}, {
				name : 'lastUpdBy',
				jsonmap : 'LAST_UPD_BY',
				index : 'LAST_UPD_BY',
				editable : false,
				hidden : true,
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			}, {
				name : 'lastUpdDate',
				jsonmap : 'LAST_UPD_DATE',
				index : 'LAST_UPD_DATE',
				hidden : true,
				//日期格式转换（年月日时分秒）
				formatter : 'date',
				formatoptions : {
					srcformat : 'Y/m/d H:i:s',
					newformat : 'Y-m-d H:i:s'
				},
				align : 'center',
				editable : false,
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			} ],
			//默认排序字段
			sortname : 'LAST_UPD_DATE',
			sortorder : 'desc',
			viewrecords : true,
			gridview : true,
			rownumbers : true,
			autowidth : true,
			rowNum : 20,
			rowList : [ 10, 20, 30 ],
			jsonReader : {
				//固化定义
				page : "page.pageNo",
				total : "page.totalPages",
				records : "page.totalCount",
				root : "page.result",
				repeatitems : false,
				//设置主Key
				id : 'USER_ID'
			},
			prmNames : {
				rows : "page.pageSize",
				page : "page.pageNo",
				sort : "page.orderBy",
				order : "page.order"
			},
			pager : "#gridPager",
			caption : "用户列表",
			onSelectRow : function (ids){
	        	if(ids == null){
	        		ids = 0;
	        		if(jQuery("#gridTable").jqGrid('getGridParam','records') > 0){
            			jQuery("#detailGridTable").jqGrid('setGridParam',{
							url : "${request.contextPath}/list/backstage/tsRolesExistInTsUsersList/list.html?userId="+ ids,
							page : 1
						});
            			
            			jQuery("#detailGridTable").jqGrid('setCaption',"角色列表:").trigger('reloadGrid');
            		}
	        	}else{
	        		jQuery("#detailGridTable").jqGrid('setGridParam',{
        				url : "${request.contextPath}/list/backstage/tsRolesExistInTsUsersList/list.html?userId="+ ids,
                        page : 1
                    });
        			
        			var displayName = jQuery('#gridTable').jqGrid('getRowData',ids).userName ;
					jQuery("#detailGridTable").jqGrid('setCaption',"角色列表:"+ displayName).trigger('reloadGrid');
	        	}
	        }
		}).navGrid('#gridPager', {
			edit : true,
			add : true,
			del : true,
			search : true
		}, {
			//edit
			beforeShowForm: function(form) {},
			reloadAfterSubmit : true,
            closeAfterEdit : true, //修改完毕后关闭
            afterComplete : opertaionPrompt
		}, {
			//add
			beforeShowForm: function(form) {},
            reloadAfterSubmit : true,
            closeAfterAdd : true, //新增完毕后关闭
            afterComplete : opertaionPrompt,
            //提交前进行验证
            beforeSubmit :validateSumbit 
		}, {
			//del
            reloadAfterSubmit : true,
            afterComplete : opertaionPrompt
		}, {
			//组合查询
			multipleSearch : true
		});
		
		//提交前的验证，检验数据，并加入beanName
		function validateSumbit(postdata, formid){
			return [true,''];
		}
		
		
		
		
		jQuery("#detailGridTable").jqGrid({
			url : '${request.contextPath}/list/backstage/tsRolesExistInTsUsersList/list.html',
			editurl : '${request.contextPath}/operator/ts/TsRoles/operator.html',
			datatype : "json",
			mtype : 'POST',
			height : 400,
			colNames : [ '唯一标识','角色编号', '角色名称', '备注','状态',
						'创建人','创建日期', '最后修改人', '最后修改时间' ],
			colModel : [
			{
				name : 'id',
				jsonmap : 'ID',
				index : 'ID',
				hidden : true,
				editable : false,
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			},
			{
				name : 'roleId',
				jsonmap : 'ROLE_ID',
				index : 'ROLE_ID',
				hidden : true,
				editable : false,
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			}, {
				name : 'roleName',
				jsonmap : 'ROLE_NAME',
				index : 'ROLE_NAME',
				editable : true,
				editrules:{
					required:true
				},
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			}, {
				name : 'remark',
				jsonmap : 'REMARK',
				index : 'REMARK',
				editable : true,
				editrules:{
				},
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			}, {
				name : 'status',
				jsonmap : 'STATUS',
				index : 'STATUS',
				hidden : true,
				editable : false,
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			},{
				name : 'createdBy',
				jsonmap : 'CREATED_BY',
				index : 'CREATED_BY',
				hidden : true,
				editable : false,
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			}, {
				name : 'createdDate',
				jsonmap : 'CREATED_DATE',
				index : 'CREATED_DATE',
				hidden : true,
				formatter : 'date',
				formatoptions : {
					srcformat : 'Y/m/d H:i:s',
					newformat : 'Y-m-d H:i:s'
				},
				align : 'center',
				editable : false,
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			}, {
				name : 'lastUpdBy',
				jsonmap : 'LAST_UPD_BY',
				index : 'LAST_UPD_BY',
				hidden : true,
				editable : false,
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			}, {
				name : 'lastUpdDate',
				jsonmap : 'LAST_UPD_DATE',
				index : 'LAST_UPD_DATE',
				hidden : true,
				//日期格式转换（年月日时分秒）
				formatter : 'date',
				formatoptions : {
					srcformat : 'Y/m/d H:i:s',
					newformat : 'Y-m-d H:i:s'
				},
				align : 'center',
				editable : false,
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			} ],
			//默认排序字段
			sortname : 'LAST_UPD_DATE',
			sortorder : 'desc',
			viewrecords : true,
			gridview : true,
			multiselect:true,
			rownumbers : true,
			autowidth : true,
			rowNum : 20,
			rowList : [ 10, 20, 30 ],
			jsonReader : {
				//固化定义
				page : "page.pageNo",
				total : "page.totalPages",
				records : "page.totalCount",
				root : "page.result",
				repeatitems : false,
				//设置主Key
				id : 'ID'
			},
			prmNames : {
				rows : "page.pageSize",
				page : "page.pageNo",
				sort : "page.orderBy",
				order : "page.order"
			},
			pager : "#detialGridPager",
			caption : "角色列表"
		}).navGrid('#detialGridPager', {
			edit : false,
			addfunc : addRoles,
			delfunc : delRoles,
			search : true
		}, {
			//edit
			reloadAfterSubmit : true,
            closeAfterEdit : true, //修改完毕后关闭
            afterComplete : opertaionPrompt
		}, {
			//add
            reloadAfterSubmit : true,
            closeAfterAdd : true, //新增完毕后关闭
            afterComplete : opertaionPrompt
		}, {
			//del
            reloadAfterSubmit : true,
            afterComplete : opertaionPrompt
		}, {
			//组合查询
			multipleSearch : true
		});
		
		//新增角色
		function addRoles(){
			var selectedUserId = $("#gridTable").jqGrid("getGridParam", "selrow");
	    	if(selectedUserId ==null){
	    		alert("请先选择用户");
	    		return;
	    	}
			
	    	$('#for-roles-dialog').dialog({
	    		title : '选择角色',
	            height : 420,
	            width : 380,
	            modal:true,
	            open: function(){
	                //刷新对象的列表，显示结果
	               	jQuery("#gridRolesTable").jqGrid('setGridParam',{
	                    url:'${request.contextPath}/list/backstage/tsRolesNoExistInTsUsersList/list.html?userId='+selectedUserId,
	                    page : 1
                	});
	                
                	jQuery("#gridRolesTable").trigger('reloadGrid');
	            },
	            buttons: [
	                      {
	                          text: "确定",
	                          click: function() { 
	                          		var items = [];
									var selectedIds = $("#gridRolesTable").jqGrid("getGridParam", "selarrrow");
								 	for(var i=0;i<selectedIds.length;i++){
								 		var params = {
								 			"id":"",
                                     		"userId":selectedUserId,
                                     		"roleId":selectedIds[i]
								 		};
                                     	items.push(params);
	                               	}  
									console.log(JSON.stringify(items));
									
								 	$.ajax({
							 			url: '${request.contextPath}/operator/ts/TsUserRole/operatorList.html', 
	                                  	type: 'POST', 
	                                  	data:{"datalist":JSON.stringify(items),"oper":"add"}, 
	                                  	dataType: 'json', 
	                                  	timeout: 100000,
	                                  	error: function(){alert('错误');}, 
	                                  	success: function(result){
	                                      	alert(result.message);
		                                      
                                       		jQuery("#detailGridTable").trigger('reloadGrid');
	                                      	jQuery("#gridRolesTable").trigger('reloadGrid');
	                                      	$('#for-roles-dialog').dialog("close");
		                                      
	                                  	} 
	                              	});
									                
	                          }
	                      },{
	                          text: "取消",
	                          click: function() { $(this).dialog("close"); }
	                      }
	                  ]
	    	});
		}
		
		//删除角色
		function delRoles(){
			
			var idsItems = [];
			var ids = $("#detailGridTable").jqGrid("getGridParam", "selarrrow");
		 	for(var i=0;i<ids.length;i++){
		 		var params = {
		 			"id":ids[i]
		 		};
             	idsItems.push(params);
           	}
			
			
			$.ajax({
	 			url: '${request.contextPath}/operator/ts/TsUserRole/operatorList.html', 
              	type: 'POST', 
              	data:{"datalist":JSON.stringify(idsItems),"oper":"del"}, 
              	dataType: 'json', 
              	timeout: 100000,
              	error: function(){alert('错误');}, 
              	success: function(result){
                  	alert(result.message);
                      
               		jQuery("#detailGridTable").trigger('reloadGrid');
                      
              	} 
          	});
			
		}
		
		
		
		jQuery("#gridRolesTable").jqGrid({
			url : '${request.contextPath}/list/backstage/tsRolesNoExistInTsUsersList/list.html',
			editurl : '',
			datatype : "json",
			mtype : 'POST',
			height : 200,
			colNames : [ '角色编号', '角色名称', '备注','状态','创建人','创建日期', '最后修改人', '最后修改时间' ],
			colModel : [
			{
				name : 'roleId',
				jsonmap : 'ROLE_ID',
				index : 'ROLE_ID',
				hidden : true,
				//主键不允许编辑
				editable : false,
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			}, {
				name : 'roleName',
				jsonmap : 'ROLE_NAME',
				index : 'ROLE_NAME',
				editable : true,
				editrules:{
					required:true
				},
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			}, {
				name : 'remark',
				jsonmap : 'REMARK',
				index : 'REMARK',
				editable : true,
				editrules:{
				},
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			}, {
				name : 'status',
				jsonmap : 'STATUS',
				index : 'STATUS',
				hidden : true,
				editable : false,
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			},{
				name : 'createdBy',
				jsonmap : 'CREATED_BY',
				index : 'CREATED_BY',
				hidden : true,
				editable : false,
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			}, {
				name : 'createdDate',
				jsonmap : 'CREATED_DATE',
				index : 'CREATED_DATE',
				hidden : true,
				formatter : 'date',
				formatoptions : {
					srcformat : 'Y/m/d H:i:s',
					newformat : 'Y-m-d H:i:s'
				},
				align : 'center',
				editable : false,
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			}, {
				name : 'lastUpdBy',
				jsonmap : 'LAST_UPD_BY',
				index : 'LAST_UPD_BY',
				hidden : true,
				editable : false,
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			}, {
				name : 'lastUpdDate',
				jsonmap : 'LAST_UPD_DATE',
				index : 'LAST_UPD_DATE',
				hidden : true,
				//日期格式转换（年月日时分秒）
				formatter : 'date',
				formatoptions : {
					srcformat : 'Y/m/d H:i:s',
					newformat : 'Y-m-d H:i:s'
				},
				align : 'center',
				editable : false,
				searchoptions : {
					sopt : [ "eq", "cn" ]
				}
			} ],
			//默认排序字段
			sortname : 'LAST_UPD_DATE',
			sortorder : 'desc',
			viewrecords : true,
			gridview : true,
			multiselect:true,
			rownumbers : true,
			autowidth : true,
			rowNum : 10,
			rowList : [ 10, 20, 30 ],
			jsonReader : {
				//固化定义
				page : "page.pageNo",
				total : "page.totalPages",
				records : "page.totalCount",
				root : "page.result",
				repeatitems : false,
				//设置主Key
				id : 'ROLE_ID'
			},
			prmNames : {
				rows : "page.pageSize",
				page : "page.pageNo",
				sort : "page.orderBy",
				order : "page.order"
			},
			pager : "#gridRolesPager",
			caption : "角色列表"
		}).navGrid('#gridRolesPager', {
			edit : false,
			add : false,
			del : false,
			search : true
		}, {
		}, {
		}, {
		}, {
			//组合查询
			multipleSearch : true
		});
		
	});
	
</#macro>

<#macro main>
	<div id="leftdiv">
		<table id="gridTable"></table>
		<div id="gridPager"></div>
	</div>
	<div id="rightdiv">
		<table id="detailGridTable"></table>
	    <div id="detialGridPager"></div>
	</div>
	
	<div id="for-roles-dialog" style="display: none; font-size: 11px;">
		<table id="gridRolesTable"></table>
		<div id="gridRolesPager"></div>
	</div>
</#macro>